
// 定义变量保存验证码
let secret_code = ''
// 获取应用实例
const app = getApp()
Page({
  data: {
    countDownVisible: false,
    mobile:'',
    code:''
  },
 onLoad({redirectURL}) {
    // 获取地址参数
    this.setData({ redirectURL })
  },

  // 获取倒计时信息
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      // 最后一步倒计时结束时隐藏倒计时组件：
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },

  // 验证手机号格式
  verifyMobile(){
      // 宽松的验证规则
    const reg = /^[1][3-8][0-9]{9}$/
    // 正则验证（去除两端空格）
    const valid = reg.test(this.data.mobile.trim())

    if (!valid) {
      return wx.utils.toast('请输入正确手机号！')
    }
    // 返回验证结果
    return valid
  },

// 验证验证码
  verifyCode() {
    // 验证码为6位数字
    const reg = /^\d{6}$/
    // 验证验证码
    const valid = reg.test(this.data.code.trim())
    // 验证结果提示
    if (!valid) wx.utils.toast('请检查验证码是否正确!')
    // 返回验证结果
    return valid
  },


// 获取短信验证码
async getCode() {
  // 验证手机号码格式是否正确
  if (!this.verifyMobile()) {
    return wx.utils.toast('验证码格式错误！')
  }

  // 请求接口数据
  const {code,data}=await wx.http('/code',{mobile:this.data.mobile.trim()})

  if (code!==10000) {
    return wx.utils.toast('获取验证码失败！')
  }
  wx.utils.toast('获取验证码成功！')
  // 倒计时开始
  this.setData({countDownChange:true})

 // 记录验证码等待复制到粘贴板（仅用于测试环境）
    secret_code = data.code
   
},

copyCode(){
  wx.setClipboardData({data:secret_code})
},

// 提交数据完成登录
async  submitForm() {
    // 逐个验证表单数据
    if(!this.verifyMobile()) return
    if(!this.verifyCode()) return

        // 用户填写的手机号和验证码
    const { mobile, code } = this.data

    // 调用接口登录/注册
    const res = await wx.http.post('/login', { mobile, code })
    // 校验数据是否合法
    if (res.code !== 10000) return wx.utils.toast('请检查验证码是否正确!')
   
      // 拼凑完整 token 
    const token = 'Bearer ' + res.data.token
    // 本地存储 token 和 refresh_token
    // wx.setStorageSync('token', token)
    
    app.setToken(res.data.token,res.data.refreshToken)
    // 更新全局 token 和 refresh_token
    app.token = token

     // 存储记录token
    // app.setToken(res.token)

       // 重定向至登录前的页面
    wx.redirectTo({
      url: this.data.redirectURL,
    })
  },
})
